Previous: Custom Line-Up, Up: Customizing Indentation [Contents][Index]
To configure macros which you invoke without a terminating ‘;’, see See Macros with ;.
Here are the remaining odds and ends regarding indentation:
In ‘gnu’ style (see Built-in Styles), a minimum indentation is imposed on lines inside code blocks. This minimum indentation is controlled by this style variable. The default value is 1.
It’s the function c-gnu-impose-minimum
that enforces this minimum indentation. It must be present on
c-special-indent-hook to work.
This style variable is a standard hook variable that is
called after every line is indented by CC Mode. It is called
only if c-syntactic-indentation is
non-nil (which it is by default (see Indentation
Engine Basics)). You can put a function on this hook to
do any special indentation or ad hoc line adjustments your
style dictates, such as adding extra indentation to
constructors or destructor declarations in a class
definition, etc. Sometimes it is better to write a custom
Line-up Function instead (see Custom
Line-Up).
When the indentation engine calls this hook, the variable
c-syntactic-context is bound to the current
syntactic context (i.e., what you would get by typing
C-c C-s on the source line. See Custom Braces.). Note
that you should not change point or mark inside a
c-special-indent-hook function, i.e.,
you’ll probably want to wrap your function in a
save-excursion48.
Setting c-special-indent-hook in style
definitions is handled slightly differently from other
variables—A style can only add functions to this hook,
not remove them. See Style
Variables.
The numerical value returned by point will
change if you change the indentation of the line within a
save-excursion form, but point itself will still
be over the same piece of text.
Previous: Custom Line-Up, Up: Customizing Indentation [Contents][Index]